import request from '../utils/request'

/**
 * 获取用户列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getUserList(params) {
  return request({
    url: '/admin/users',
    method: 'get',
    params
  })
}

/**
 * 更新用户状态
 * @param {Number} id - 用户ID
 * @param {Number} status - 状态(0-禁用, 1-启用)
 * @returns {Promise}
 */
export function updateUserStatus(id, status) {
  return request({
    url: `/admin/users/${id}/status`,
    method: 'put',
    params: { status }
  })
}

/**
 * 更新用户角色
 * @param {Number} id - 用户ID
 * @param {Number} role - 角色(1-普通用户, 2-专家用户, 3-管理员)
 * @returns {Promise}
 */
export function updateUserRole(id, role) {
  return request({
    url: `/admin/users/${id}/role`,
    method: 'put',
    params: { role }
  })
}

/**
 * 获取待审核问题列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getPendingQuestions(params) {
  return request({
    url: '/admin/questions/pending',
    method: 'get',
    params
  })
}

/**
 * 审核问题
 * @param {Number} id - 问题ID
 * @param {Number} status - 状态(1-通过, 4-拒绝)
 * @param {String} reason - 拒绝理由
 * @returns {Promise}
 */
export function reviewQuestion(id, status, reason) {
  return request({
    url: `/admin/questions/${id}/review`,
    method: 'put',
    params: { 
      status,
      reason
    }
  })
}

/**
 * 获取用户统计数据
 * @returns {Promise}
 */
export function getUserStatistics() {
  return request({
    url: '/admin/statistics/users',
    method: 'get'
  })
}

/**
 * 批量删除用户
 * @param {Array<Number>} ids - 用户ID数组
 * @returns {Promise}
 */
export function batchDeleteUsers(ids) {
  return request({
    url: '/admin/users/batch',
    method: 'delete',
    data: ids
  })
}

/**
 * 获取所有问题列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getAllQuestions(params) {
  return request({
    url: '/admin/questions',
    method: 'get',
    params
  })
}

/**
 * 删除问题
 * @param {Number} id - 问题ID
 * @returns {Promise}
 */
export function deleteQuestion(id) {
  return request({
    url: `/admin/questions/${id}`,
    method: 'delete'
  })
}

/**
 * 批量删除问题
 * @param {Array<Number>} ids - 问题ID数组
 * @returns {Promise}
 */
export function batchDeleteQuestions(ids) {
  return request({
    url: '/admin/questions/batch',
    method: 'delete',
    data: ids
  })
}

/**
 * 获取回答列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getAnswers(params) {
  return request({
    url: '/admin/answers',
    method: 'get',
    params
  })
}

/**
 * 删除回答
 * @param {Number} id - 回答ID
 * @returns {Promise}
 */
export function deleteAnswer(id) {
  return request({
    url: `/admin/answers/${id}`,
    method: 'delete'
  })
}

/**
 * 批量删除回答
 * @param {Array<Number>} ids - 回答ID数组
 * @returns {Promise}
 */
export function batchDeleteAnswers(ids) {
  return request({
    url: '/admin/answers/batch',
    method: 'delete',
    data: ids
  })
}

/**
 * 获取评论列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getComments(params) {
  return request({
    url: '/admin/comments',
    method: 'get',
    params
  })
}

/**
 * 删除评论
 * @param {Number} id - 评论ID
 * @returns {Promise}
 */
export function deleteComment(id) {
  return request({
    url: `/admin/comments/${id}`,
    method: 'delete'
  })
}

/**
 * 批量删除评论
 * @param {Array<Number>} ids - 评论ID数组
 * @returns {Promise}
 */
export function batchDeleteComments(ids) {
  return request({
    url: '/admin/comments/batch',
    method: 'delete',
    data: ids
  })
}

/**
 * 获取平台统计数据
 * @returns {Promise}
 */
export function getPlatformStatistics() {
  return request({
    url: '/admin/statistics/platform',
    method: 'get'
  })
}

/**
 * 获取敏感内容统计
 * @returns {Promise}
 */
export function getSensitiveContentStatistics() {
  return request({
    url: '/admin/statistics/sensitive',
    method: 'get'
  })
}

/**
 * 获取用户分布统计
 * @returns {Promise}
 */
export function getUserDistributionStatistics() {
  return request({
    url: '/admin/statistics/users/distribution',
    method: 'get'
  })
}

/**
 * 获取内容质量分析
 * @returns {Promise}
 */
export function getContentQualityStatistics() {
  return request({
    url: '/admin/statistics/content/quality',
    method: 'get'
  })
}

/**
 * 获取平台运营分析
 * @returns {Promise}
 */
export function getPlatformOperationStatistics() {
  return request({
    url: '/admin/statistics/platform/operation',
    method: 'get'
  })
}

/**
 * 获取仪表盘数据
 * @param {Object} params - 查询参数，如期间、过滤条件等
 * @returns {Promise}
 */
export function getDashboardData(params) {
  return request({
    url: '/admin/dashboard',
    method: 'get',
    params
  })
}

/**
 * 获取敏感内容历史记录
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getSensitiveHistory(params) {
  return request({
    url: '/admin/sensitive/history',
    method: 'get',
    params
  })
}

/**
 * 审核通过敏感内容
 * @param {number} id - 内容ID
 * @returns {Promise}
 */
export function approveSensitiveContent(id) {
  return request({
    url: `/admin/sensitive/approve/${id}`,
    method: 'put'
  })
}

/**
 * 拒绝敏感内容
 * @param {number} id - 内容ID
 * @param {string} reason - 拒绝理由
 * @returns {Promise}
 */
export function rejectSensitiveContent(id, reason) {
  return request({
    url: `/admin/sensitive/reject/${id}`,
    method: 'put',
    data: { reason }
  })
}

/**
 * 获取敏感词排行
 * @param {number} limit - 返回数量
 * @returns {Promise}
 */
export function getSensitiveRanking(limit) {
  return request({
    url: '/admin/sensitive/ranking',
    method: 'get',
    params: { limit }
  })
}

/**
 * 获取敏感词列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getSensitiveWords(params) {
  return request({
    url: '/admin/sensitive/words',
    method: 'get',
    params
  })
}

/**
 * 添加敏感词
 * @param {Object} data - 敏感词数据
 * @returns {Promise}
 */
export function addSensitiveWord(data) {
  return request({
    url: '/admin/sensitive/words',
    method: 'post',
    data
  })
}

/**
 * 删除敏感词
 * @param {number} id - 敏感词ID
 * @returns {Promise}
 */
export function deleteSensitiveWord(id) {
  return request({
    url: `/admin/sensitive/words/${id}`,
    method: 'delete'
  })
}

/**
 * 获取自动审核配置
 * @returns {Promise}
 */
export function getAutoReviewConfig() {
  return request({
    url: '/admin/sensitive/auto-review',
    method: 'get'
  })
}

/**
 * 保存自动审核配置
 * @param {Object} config - 配置数据
 * @returns {Promise}
 */
export function saveAutoReviewConfig(config) {
  return request({
    url: '/admin/sensitive/auto-review',
    method: 'post',
    data: config
  })
}

/**
 * 检测敏感内容
 * @param {string} text - 待检测文本
 * @returns {Promise}
 */
export function detectSensitiveContent(text) {
  return request({
    url: '/admin/sensitive/detect',
    method: 'post',
    data: { text }
  })
}

/**
 * 问题自动审核
 * @param {Object} data - 问题数据
 * @returns {Promise}
 */
export function autoReviewQuestion(data) {
  return request({
    url: '/admin/questions/auto-review',
    method: 'post',
    data
  })
} 